I enabled the arguments/environment-variables to debug what the sqllite database was doing behind the scenes, and now I'm even more confused.
TraceSQL(0x127e12970):
INSERT INTO ZVARIANTMODEL(
Z_PK,
Z_ENT,
Z_OPT,
ZPROJECT,
ZTHUMBNAIL,
Z2VARIANTS,
ZASSIGNMENTS,
ZELEMENTGROUPS,
ZGROUPEDELEMENTS,
ZID,
ZMODIFIEDON,
ZNAME,
ZSWATCHES
) VALUES(
1,
4,
1,
NULL,
NULL,
1,
x'7b7d',
NULL,
NULL,
x'31ddf4ce24b8463e9ede5bfe4457e19e',
718570686.400954,
'Super Long',
x'62706c697374303...00000000000005f'
)
If I'm reading this correctly, it appears to be storing ZELEMENTGROUPS and ZGROUPEDELEMENTS which are the internal stored values on the Group type. I would have assumed it would instead just use whatever implementation I have for Codable? It is storing nil for both of these types.
This seems very odd, and not what I would expect at all.